//
//  DeviceConnectVM.swift
//  xgwjinterconnection
//
//  Created by WangWeiShuo on 2025/9/30.
//

import Foundation
import SwiftUI
import NetworkExtension
import CoreLocation

class DeviceConnectVM: NSObject,ObservableObject{
    @Published var message = "等待连接…"
    @Published var isConnected = false
        private let locManager = CLLocationManager()
        
        // 1. 请求定位权限（不请求也能连，但拿不到 SSID）
        func requestLocationIfNeeded() {
            locManager.requestWhenInUseAuthorization()
        }
        
        // 2. 真正的连接入口
        func connect(ssid: String, passphrase: String) {
            // 系统仅 iOS11+ 支持
            if #available(iOS 11.0, *) {
                // 无密码可把 passphrase 传 nil
                let config = NEHotspotConfiguration(ssid: ssid,
                                                    passphrase: passphrase,
                                                    isWEP: false)
                config.joinOnce = true          // 不保存到系统列表
                NEHotspotConfigurationManager.shared.apply(config) { [weak self] error in
                    DispatchQueue.main.async {
                        if let error = error {
                            // error.code == 7  用户点了取消
                            // error.code == 13 已经连接
                            print("连接失败")
                            self?.message = "连接失败：\(error.localizedDescription)"
                            self?.isConnected = false
                        } else {
                            self?.message = "已自动连接至 \(ssid)"
                            self?.isConnected = true
                            print("连接成功")
                        }
                    }
                }
            } else {
                message = "系统版本低于 iOS 11，无法使用"
            }
        }
}
